/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"F277045D-3FE5-45EF-89B9-81B16F04B5C1",variableType:4}
 */
var fCaja = null; 

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"52E88643-C0D1-41EE-AD97-9FE194897A5B",variableType:4}
 */
var fNroManual = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"256CBEA3-FD50-48D1-A90E-6D18CF052C33",variableType:4}
 */
var es_preview = 0;

/**
 *
 * @properties={typeid:24,uuid:"F03F5328-857D-47F1-ACF9-0B0FEB050D66"}
 */
function agregar_renglon()
{
	//  dar alta de un renglon en rec_detalle y si el valor es cheque ir a rec_21
	if (cliente_id != null)
	{
		rec_cabecera_to_rec_detalle.newRecord(false)
		forms.rec_21.controller.loadRecords(rec_cabecera_to_rec_detalle)
		globals.formEnVentana('rec_21','NUEVO_VALOR','Nuevo Valor')
	}
	else
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe elegir cliente primero','OK');
	}
}

/**
 *
 * @properties={typeid:24,uuid:"B8B8FF93-361E-4901-9ABD-BB1C1C76433C"}
 */
function cancelar() 
{
	databaseManager.revertEditedRecords()
	//databaseManager.setAutoSave(true) //24/09/2010
	Iniciar();
}

/**
 *
 * @properties={typeid:24,uuid:"1C2D6618-0BC1-49B4-9042-3A508028B2AD"}
 * @AllowToRunInFind
 */
function confirmar() 
{
	fecha	= new Date(fecha.getFullYear(), fecha.getMonth(), fecha.getDate(),0,0,0,0)
	var estado = validar_al_confirmar()  
	if (estado == true)
	{
 		totalizar()
 		// no pueden ser todos cero
 		if (globals.gtotal_valores == 0 && globals.gtotal_comprob == 0 && globals.gtotal_retenciones == 0) // 30/08/2010 faltaba == 0 //globals.gtotal_retenciones) // 17/06/2010
 		{
			globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar Valores o Comprobantes o Anticipos o Retenciones",'OK'); 
			return false;
 		}
		else
		{	 
			if (globals.gtipo_pago==2 && (globals.gtotal_valores == 0 && globals.gtotal_comprob!=0))
			{
				globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar valores",'OK');
				return false;
			}
			if (globals.gtipo_pago==1 && globals.gtotal_comprob==0)
			{
				globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar comprobantes",'OK');
				return false;
			}
			if (globals.zparam_usa_proyecto == 1 && proyecto_id == null){
				globals.DIALOGS.showWarningDialog('Aviso','Debe informar el proyecto','OK');
				return false;
			}
			if (globals.gtipo_pago==1)
			{  
				var dife_abs = Math.abs(globals.gtotal_valores + globals.gtotal_retenciones - globals.gtotal_comprob) // 27/08/2010
				if ((dife_abs > 0.009)	&& globals.gtipo_pago == 1 )
			 	{
					globals.DIALOGS.showWarningDialog('Aviso',"No coincide la suma los importes ingresados en valores y retenciones con los comprobantes a imputar",'OK');
					return false;
			 	}
			} 
 /*
 // controlar: puede haber anticipos o retenciones solamente 25/03/2010
 if (globals.gtipo_pago==1 && ((globals.gtotal_valores +
		 globals.gtotal_retenciones)  // 30/08/2010 - la suma entre ()
		 != globals.gtotal_comprob)
	 || 
   (globals.gtipo_pago==2 && ((globals.gtotal_valores == 0)&& (globals.gtotal_comprob!=0))))
 {
	 if (globals.gtipo_pago==1)  // pago normal
		var $msj = "No coincide la suma los importes ingresados "  + "en valores y retenciones con los comprobantes a imputar";
	 else   // anticipo
		var $msj = "Debe ingresar valores";
	globals.DIALOGS.showWarningDialog('Aviso',$msj,'OK');
 }
 else
 { */  
			codigo_movimiento = 1  // 05/10/2010
		 	if (fNroManual == 0)  //Para q se pueda cargar manualmente el nro de comprobante
		 	{
			 	//// buscar numeracion de recibo   codigo=4
		 		/** @type {JSFoundSet<db:/infocom/numeracion_cl>}*/
				var fs_nro_rec = databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'numeracion_cl')
				fs_nro_rec.find()
				
				fs_nro_rec.sucursal			= sucursal
				fs_nro_rec.letra			= letra
				fs_nro_rec.cod_comprobante	= globals.zconf_numeracion_recibo
				
				var found = fs_nro_rec.search()
				if (found != 1)
			    {
				   globals.DIALOGS.showWarningDialog('Aviso','Sucursal o Letra o Tipo de comprobante incorrectos al buscar numeración','OK');
				   return false
			    }
			    else
			    {
					fs_nro_rec.setSelectedIndex(1)
					var nro_aux = fs_nro_rec.ultimo_numero + 1
					globals.duplicacion_rec_cabecera(letra,sucursal,nro_aux,codigo_movimiento)  
					if (globals.gfilas != 0)
					{  // ya existe ese recibo
						globals.DIALOGS.showWarningDialog('Aviso','Ya existe Recibo ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_aux,'00000000') + ' Verifique numerador de recibos','OK');		  
						return false; 
					}
					else
					{  // no existe ese recibo, asigna el sig. numero
				  		fs_nro_rec.ultimo_numero = fs_nro_rec.ultimo_numero + 1
			 		}
			 		nro_comprobante = fs_nro_rec.ultimo_numero
			 	}
			}
			else //Se cargo el nro manualmente
		 	{
				nro_aux = nro_comprobante
				globals.duplicacion_rec_cabecera(letra,sucursal,nro_aux,codigo_movimiento)  
				if (globals.gfilas != 0)
				{  // ya existe ese recibo
					globals.DIALOGS.showWarningDialog('Aviso','Ya existe Recibo ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_aux,'00000000') + ' Verifique numerador de recibos','OK');		  
					return false; 
				}
		 	}
		    // sucursal =  es lookup value de rec_cabecera
		    // fecha       se llena en iniciar
		    
			importe 			= globals.gtotal_valores + globals.gtotal_retenciones
		    importe_en_letras 	= globals.nro_a_letra(importe);
		    codigo_movimiento 	= 1
		    
			var $cc = rec_cabecera_to_clientes.clientes_to_ctacte_cl
		    //// grabar el pago en ctacte  // desde la relacion rec_cabecera-cliente + cliente-ctacte  
			$cc.newRecord()
			ctacte_cl_id	= $cc.ctacte_cl_id
			$cc.cliente_id 	= cliente_id
			$cc.fecha_mov 	= fecha
			$cc.nro_factura	= nro_comprobante
			$cc.cod_mov		= globals.zconf_numeracion_recibo
			$cc.sucursal	= sucursal
			$cc.letra		= letra
			// en ese caso el saldo debe ser globals.gtotal_valores - importe (que debe ser el total de comprobantes)
			if(globals.gtipo_pago == 2) // es anticipo => saldo=importe
				$cc.saldo = globals.gtotal_valores;
			else
			{
				$cc.saldo = 0;
			}
			$cc.provincia_id 	= rec_cabecera_to_clientes.provincia_id;
			$cc.importe  		= globals.gtotal_valores
			$cc.neto			= globals.gtotal_valores
			$cc.iva				= 0  // iva=0
			$cc.iva_porc		= 0
			$cc.cond_pago_id 	= 0
			$cc.proyecto_id		= proyecto_id
      
		     ////restar al saldo de ctacte el importe del pago de cada comprobante y desmarcar 
		     found = rec_cabecera_to_rec_detalle_comprob.getSize()
		     for (var i = 1 ; i <= rec_cabecera_to_rec_detalle_comprob.getSize(); i++)
			 {
			     rec_cabecera_to_rec_detalle_comprob.setSelectedIndex(i)
			     rec_cabecera_to_rec_detalle_comprob.rec_detalle_comprob_to_ctacte_cl_id.marcado_ctacte = 0
				 rec_cabecera_to_rec_detalle_comprob.rec_detalle_comprob_to_ctacte_cl_id.saldo -= forms.rec_1.rec_cabecera_to_rec_detalle_comprob.importe
			 }

	     //// grabar retenciones en ctacte desde rec_detalle_retencion
		     found = rec_cabecera_to_rec_detalle_retencion.getSize()
		     for (i = 1 ; i <= rec_cabecera_to_rec_detalle_retencion.getSize(); i++)
		     {
		    	rec_cabecera_to_rec_detalle_retencion.setSelectedIndex(i)
		     	// para todos. ver provincia cuando no es I.B.
		    	$cc.newRecord()
				$cc.cliente_id	= cliente_id
				$cc.fecha_mov	= rec_cabecera_to_rec_detalle_retencion.certificado_fecha
				$cc.nro_factura	= rec_cabecera_to_rec_detalle_retencion.certificado_nro
				$cc.cod_mov		= rec_cabecera_to_rec_detalle_retencion.cod_mov
				$cc.sucursal	= sucursal
				$cc.letra		= letra
				$cc.fecha_vto	= null
				if(globals.gtipo_pago == 2) // 23/06/2010
					$cc.saldo = rec_cabecera_to_rec_detalle_retencion.importe;  // 23/09/2010 corregido=toma importe a secas =>era importe de todo el pago
				else
					$cc.saldo = 0;
				if(rec_cabecera_to_rec_detalle_retencion.prov_ing_brutos == null)
				{
					$cc.provincia_id = rec_cabecera_to_clientes.provincia_id;
				}
				else
					$cc.provincia_id 	= rec_cabecera_to_rec_detalle_retencion.prov_ing_brutos;
				$cc.importe				= rec_cabecera_to_rec_detalle_retencion.importe
				$cc.neto				= 0 
				$cc.iva					= 0  
				$cc.iva_porc			= 0
				$cc.cond_pago_id		= 0; 
		     }
   	
			//// para acumular lo que luego suma a saldos_caja 
			var	tot_cheques = 0
			var tot_efectivo = 0
			
			//// grabar cyb  por cada detalle
			
			for (i = 1 ; i <= rec_cabecera_to_rec_detalle.getSize(); i++)
			{
			    //// grabar cheques:solo si es un cheque. grabar primero cheque porque para cyb necesita el cheque_id
				rec_cabecera_to_rec_detalle.setSelectedIndex(i)
				if (rec_cabecera_to_rec_detalle.rec_detalle_to_valores.es_cheque == 1)	
				{
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.newRecord()
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.banco_id			= rec_cabecera_to_rec_detalle.banco_id
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.banco_sucursal	= rec_cabecera_to_rec_detalle.banco_sucursal
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.boleta_dep		= null
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.cheque_nro		= rec_cabecera_to_rec_detalle.cheque_nro
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.cuentas_cyb_id	= globals.zparam_caja_default
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.estado			= globals.zconf_chq_en_caja
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.fecha_emision	= rec_cabecera_to_rec_detalle.fecha_emision_chq
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.fecha_entrega	= null
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.fecha_pago		= rec_cabecera_to_rec_detalle.fecha_pago
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.importe			= rec_cabecera_to_rec_detalle.importe
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.lugar_emision	= rec_cabecera_to_rec_detalle.lugar_emision
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.marca_acredit	= 0
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.marcado_cheque	= 0
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.moneda_id		= rec_cabecera_to_rec_detalle.moneda_id
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.titular			= rec_cabecera_to_rec_detalle.titular
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.titular_cuit		= rec_cabecera_to_rec_detalle.titular_cuit
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.titular_direccion= rec_cabecera_to_rec_detalle.titular_direccion
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.valor_id			= rec_cabecera_to_rec_detalle.valor_id
					rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.concepto			= "Recibo: " + nro_comprobante + ' - ' + rec_cabecera_to_clientes.razon_social
				}
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.newRecord()
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.cheque_id = rec_cabecera_to_rec_detalle.rec_detalle_to_cheques.cheque_id
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.cod_movim = 1      //1=Ingreso 2=Egreso ver tabla cod_movim_cyb
				
				// 07/06/2010 desde  //si es transferencia el movim_cyb debe tener la cuenta del banco en el cual se hizo la transf. 
				if (rec_cabecera_to_rec_detalle.rec_detalle_to_valores.usa_cta_bco == 1) 
				{ // es transferencia   va al banco ingresado en el renglon
					rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.cuentas_cyb_id = rec_cabecera_to_rec_detalle.cuentas_cyb
					rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.fecha_movim	= rec_cabecera_to_rec_detalle.fecha_pago     // 02/08/2010 ingresada en el renglon
				}
				else // es cheque o efectivo   va a caja
				{	
					rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.cuentas_cyb_id = globals.zparam_caja_default   // seteada al inicio
					rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.fecha_movim	= fecha       // cabecera
			    } // 07/06/2010 hasta
				//rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.fecha_movim=fecha       // cabecera  corrida dentro del if anterior
			    rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.empresa_id		= cliente_id   // cabecera
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.importe		= rec_cabecera_to_rec_detalle.importe
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.imputacion_id	= 1  // 1=cobranza de clientes 2= Pago a proveedores tabla cod_imput
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.valor_id		= rec_cabecera_to_rec_detalle.valor_id
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.moneda_id		= rec_cabecera_to_rec_detalle.moneda_id // 23/06/2010
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.concepto		= "Recibo: " + nro_comprobante + ' - ' + rec_cabecera_to_clientes.razon_social //21/04/2010
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.proyecto_id 	= proyecto_id
				if (rec_cabecera_to_rec_detalle.rec_detalle_to_valores.es_cheque==1 ||
				rec_cabecera_to_rec_detalle.rec_detalle_to_valores.usa_cta_bco==1)
					rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.referencia = rec_cabecera_to_rec_detalle.cheque_nro; 
				
				/////16/09/2010  se agrega para relacion con el numero de apertura de la caja
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.apertura_id		= rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.movim_cyb_to_cuentas_cyb.apertura_id;
				rec_cabecera_to_rec_detalle.rec_detalle_to_movim_cyb.marca_conciliacion = 0 //17/11/2010
					
				// acumula efectivo y cheques de terceros en caja, por separado para luego sumar al saldo// 19/05/2010 
				if (rec_cabecera_to_rec_detalle.rec_detalle_to_valores.usa_cta_bco != 1)  // 1=transferencia !=1 es efect. o cheque
				{
					if (rec_cabecera_to_rec_detalle.rec_detalle_to_valores.es_cheque == 1)// es cheque
					{
						if (rec_cabecera_to_rec_detalle.rec_detalle_to_valores.es_propio != 1) // es terceros
							tot_cheques+=rec_cabecera_to_rec_detalle.importe;
					}
					else // es efectivo
						tot_efectivo+=rec_cabecera_to_rec_detalle.importe;
			    }    
			} // fin del for	
	

			////19/05/2010 suma a tabla saldos_caja el efectivo a saldo_efectivo y todos los cheques a saldo_valores //
			/** @type {JSFoundSet<db:/infocom/saldos_caja>}*/
		    var fs_saldos = databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'saldos_caja')
			estado = fs_saldos.find()
			if (estado == true)
			{
				fs_saldos.cuentas_cyb_id = globals.zparam_caja_default // es siempre caja
				fs_saldos.moneda_id		 = globals.zparam_moneda_default
				found = fs_saldos.search()
				if (found == 1)  
				{ // actualiza saldos 
					fs_saldos.setSelectedIndex(1)
			    	fs_saldos.saldo_efectivo 	+= tot_efectivo;
			    	fs_saldos.saldo_valores 	+= tot_cheques;
			    	databaseManager.startTransaction()
					estado = databaseManager.saveData()
					if (estado == true)
					{
						databaseManager.commitTransaction()
						var resp = globals.DIALOGS.showQuestionDialog('Recibo', 'Recibo ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_comprobante,'00000000') +  '  Generado correctamente' + '  Imprime:',  "Si", "No" )
						if (resp == 'Si')
						{
							es_preview = 1;
							var $params = {
								pFacturaId		: rec_cabecera_id,
								pRazonSocial 	: usuarios_to_uservs.razon_social,
								pDireccion		: usuarios_to_uservs.calle_nro,
								pCodPostal		: usuarios_to_uservs.cod_postal,
								pCuit			: usuarios_to_uservs.cuit,
								pCodBrutos		: usuarios_to_uservs.cod_ing_brutos,
								pIva			: usuarios_to_uservs.uservs_to_tipo_iva.tipo_iva_desc,
								pActividad		: usuarios_to_uservs.actividad,
								pTelefono		: usuarios_to_uservs.telefono,
								pEmail			: usuarios_to_uservs.email,
								pInicioActividad : usuarios_to_uservs.inicio_actividad,
								pIconoURL		: usuarios_to_uservs.url_logo,
								pPie			: usuarios_to_uservs.pie_factura,
								SUBREPORT_DIR	: 'ventas/'
							}
							globals.metodoJasper('impresion','ventas/recibo.jasper','Recibo_n'+ nro_comprobante,'infocom',$params)
						} 
						else 
						{
							Iniciar()
						}
					}
					else
					{
						databaseManager.rollbackTransaction()
						cancelar()
						globals.DIALOGS.showInfoDialog('Generador de Recibos','Recibo No fue generado ',  "OK")
					}
				} // 19/05/2010 fin found==1 cuando encuentra saldos_caja
				else
				{
					globals.DIALOGS.showWarningDialog('Aviso',"No existe saldo de cuenta " + application.getValueListDisplayValue('cuentas_caja',globals.zparam_caja_default) ,'OK');
				}
			}
			else //19/05/2010 fallo el find de saldos_caja
		    {
		    	globals.DIALOGS.showWarningDialog('Aviso','No encontro tabla de saldos','OK');
			}
    	}
	}
	return true
}

/**
 *
 * @properties={typeid:24,uuid:"C06F236D-A8F2-4FDF-99BA-F715C9AC4C4F"}
 */
function eliminar_renglon() 
{
var found = rec_cabecera_to_rec_detalle.getSize()
	if (found==0)
	{
	    globals.gtotal_valores=0
	}
	else
	{
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea dar de baja? ',  'Si', 'No')
	if (resp == 'Si')
	{
		rec_cabecera_to_rec_detalle.deleteRecord()
		totales_valores()
	}
	}
}

/**
 *
 * @properties={typeid:24,uuid:"803BC84C-2BAB-4330-B8B6-91376CFBEE92"}
 */
function salir_rec() 
{
	if (es_preview== 0)
	{
	 	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea salir?' ,  'Si', 'No')
		if (resp == 'Si')
		{
			databaseManager.revertEditedRecords()
			databaseManager.setAutoSave(true) //14/09/2010
		}
	}
}

/**
 * @properties={typeid:24,uuid:"C96215CE-1EB3-4EEF-931C-1DD0CA713089"}
 */
function totalizar() 
{
	totales_valores()
	totales_comprob()
	totales_retenciones() 
}

/**
 *
 * @properties={typeid:24,uuid:"FB3AE14F-B65C-4A6C-8CB8-8C5BED575DB1"}
 */
function Iniciar() 
{
	databaseManager.setAutoSave(false);
	controller.newRecord(false);
	
	es_preview 	= 0;
	fecha 		= application.getServerTimeStamp();  
	letra 		= "X"; 
	sucursal	= globals.gSucursal
	fCaja		= globals.zparam_caja_default
	
	globals.gdiferencia			= 0; //30/09/2010
	globals.gtotal_comprob		= 0.00;
	globals.gtotal_valores		= 0.00;
	globals.gtotal_saldo		= 0.00;
	globals.marca_primer_find 	= 0;
	globals.gtipo_pago			= 1    // caso mas completo
	globals.gtotal_retenciones	= 0;
	
	elements.tabs_420.enabled				= true;
	elements.agregar_renglon_compr.enabled	= true;
	elements.eliminar_renglon_compr.enabled	= true;
	elements.fld_nro_comprobante.enabled 	= fNroManual
	elements.fld_sucursal.enabled 			= fNroManual
}

/**
 *
 * @properties={typeid:24,uuid:"6A813326-BF47-48E7-9F39-6F06A8E2A114"}
 */
function totales_comprob() 
{
	globals.gtotal_comprob = 0
	var $cant = databaseManager.getFoundSetCount(rec_cabecera_to_rec_detalle_comprob)
	for ( var i = 1 ; i <= $cant ; i++ )
	{
		var $rcd = rec_cabecera_to_rec_detalle_comprob.getRecord(i)
		if ($rcd.rec_detalle_comprob_to_ctacte_cl.ctacte_cl_to_tab_mov_cl.d_h == 1)
			globals.gtotal_comprob += $rcd.importe;
		else
			globals.gtotal_comprob -= $rcd.importe;
	} 
	if (globals.gtotal_comprob < 0)
	{
		globals.DIALOGS.showWarningDialog('Aviso','El total de los comprobantes a imputar no puede ser negativo','OK');
	}
	else  //29/09/2010
	globals.grecibo_diferencia(); //29/09/2010 
}

/**
 *
 * @properties={typeid:24,uuid:"D9F1302E-7010-47D0-AA70-8D58F41D62B0"}
 */
function totales_valores() 
{
	globals.gtotal_valores = 0
	var $cant = databaseManager.getFoundSetCount(rec_cabecera_to_rec_detalle) 
	for ( var i = 1 ; i <= $cant ; i++ )
	{
		var $rcd = rec_cabecera_to_rec_detalle.getRecord(i)
		globals.gtotal_valores+= $rcd.importe  
	} 
	globals.grecibo_diferencia();
}

/**
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"A76AADCE-9D9F-45E6-BFD6-520D2EF4FF78"}
 */
function elige_cliente() 
{
	globals.gtotal_saldo	= 0
	globals.gtotal_valores	= 0
	globals.gtotal_comprob	= 0
	// salvar_cliente: porque perdia en codigo de cliente en el newRecord
	var salvar_cliente = cliente_id
	// rollback: porque al cambiar de cliente dejaba los movs. del anterior
	databaseManager.revertEditedRecords()
	// newRecord: porque al traia datos del untilmo recibo de ese cliente en vez de crear uno
	controller.newRecord(false);
	fecha 		= new Date();  
	letra 		= "X"; 
	cliente_id 	= salvar_cliente;
	sucursal	= globals.gSucursal
	fCaja		= globals.zparam_caja_default
	globals.marca_primer_find = 0;
	globals.gdiferencia = 0;
	return true
}

/**
 * @properties={typeid:24,uuid:"1CE8D917-AEF8-496B-88D6-1BC7CFBF0EFB"}
 */
function agregar_renglon_comprob() 
{
	// llamar al otro form para seleccionar los mov. de ctacte.
	if (cliente_id!=null)
	{
		globals.formEnVentana('ctacte_cl_list_rec','ctacte_rec','Comprobantes adeudados')
	}
	else
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe elegir cliente primero','OK');
	}	
	// vuelve del anterior form con las columnas de rec_detalle_comprob dadas de alta
	// con los datos de los mov. de ctacte marcados
}

/**
 * @properties={typeid:24,uuid:"3F786AFD-94D2-43AA-BB8E-9A948F95874C"}
 */
function eliminar_renglon_comprob() 
{
	var found = rec_cabecera_to_rec_detalle_comprob.getSize()
	if (found==0)
	{
	   	globals.gtotal_comprob=0.00  // ????
	}
	else
	{
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea dar de baja? ',  'Si', 'No')
	if (resp == 'Si')
	{
		rec_cabecera_to_rec_detalle_comprob.deleteRecord()
		totales_comprob()  // recalcula los totales ?  probar
	}
	}
}

/**
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"1637CD46-DBB8-4ECC-9BD1-02CD8FDB4365"}
 */
function ver_tipo_pago()   
{
	if (globals.gtipo_pago==1)
	{// pago normal
		elements.tabs_420.enabled=true
		elements.agregar_renglon_compr.enabled=true
		elements.eliminar_renglon_compr.enabled=true
		elements.tabs_340.enabled=true
	}
	else
	{//anticipo
		elements.tabs_420.enabled=false
		elements.agregar_renglon_compr.enabled=false
		elements.eliminar_renglon_compr.enabled=false
		// elements.tabs_340.enabled=false //14/09/2010
		// globals.gtotal_retenciones=0 //14/09/2010
		var found = rec_cabecera_to_rec_detalle_comprob.getSize()
		if (found!=0)
		{// eliminar detalle_comprob
			//rec_cabecera_to_rec_detalle_comprob.deleteRecord()    // 29/05/2012   solo uno !!!
			rec_cabecera_to_rec_detalle_comprob.deleteAllRecords()  // 29/05/2012   todos
			globals.gtotal_comprob=0.00
		}
	}
	globals.gdiferencia=0; //30/09/2010
	return true
}

/**
 * Perform the element default action.
 *
 * @properties={typeid:24,uuid:"FE3B4423-07AF-4372-962F-664BDE3C6B37"}
 */
function totales_retenciones()  
{
	globals.gtotal_retenciones = 0
	var found = rec_cabecera_to_rec_detalle_retencion.getSize()
	for ( var i = 1 ; i <= found ; i++ )
	{
		rec_cabecera_to_rec_detalle_retencion.setSelectedIndex(i)
		globals.gtotal_retenciones += rec_cabecera_to_rec_detalle_retencion.importe
	} 
	globals.grecibo_diferencia(); //29/09/2010
}

/**
 * @properties={typeid:24,uuid:"79EB0DA9-D545-4251-9F60-30621C9E25CE"}
 */
function validar_al_confirmar() 
{
	//var found=rec_cabecera_to_rec_detalle_retencion.getSize()  // quitar luego de probar
	for (var i = 1 ; i <= rec_cabecera_to_rec_detalle_retencion.getSize(); i++)
	 {
	    rec_cabecera_to_rec_detalle_retencion.setSelectedIndex(i);
	    if(rec_cabecera_to_rec_detalle_retencion.cod_mov==null)
		{
	    	globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar retención ",'OK');
	    	return false;
	    }	
		if(rec_cabecera_to_rec_detalle_retencion.certificado_nro==null)
		{
	    	globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar número de certificado de " + rec_cabecera_to_rec_detalle_retencion.rec_detalle_retencion_to_tab_mov_cl.descripcion,'OK');
	    	return false;
	    }
		if (rec_cabecera_to_rec_detalle_retencion.certificado_fecha==null)
	    {
	    	globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar fecha de certificado de " + rec_cabecera_to_rec_detalle_retencion.rec_detalle_retencion_to_tab_mov_cl.descripcion,'OK');
	    	return false;
	    }
		if (rec_cabecera_to_rec_detalle_retencion.importe==null)
		{
	    	globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar importe de " + rec_cabecera_to_rec_detalle_retencion.rec_detalle_retencion_to_tab_mov_cl.descripcion,'OK');
	    	return false;
	    }
		if(rec_cabecera_to_rec_detalle_retencion.rec_detalle_retencion_to_tab_mov_cl.ing_brutos==1)
		{
			if (rec_cabecera_to_rec_detalle_retencion.prov_ing_brutos==null)
			{
	    		globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar provincia " + rec_cabecera_to_rec_detalle_retencion.rec_detalle_retencion_to_tab_mov_cl.descripcion,'OK');
	    		return false;
			 }
		}
		else
			rec_cabecera_to_rec_detalle_retencion.prov_ing_brutos=null;
	 } // fin for de retenciones
	
	//var found=rec_cabecera_to_rec_detalle.getSize()  // quitar luego de probar
	for (i = 1 ; i <= rec_cabecera_to_rec_detalle.getSize(); i++)
	 {
		rec_cabecera_to_rec_detalle.setSelectedIndex(i);
		if (rec_cabecera_to_rec_detalle.importe==null)
	    {
	    	globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar Importe del valor " + rec_cabecera_to_rec_detalle_retencion.rec_detalle_retencion_to_tab_mov_cl.descripcion,'OK');
	    	return false;
	    }
		if (rec_cabecera_to_rec_detalle.valor_id==null)
	    {
	    	globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar el Valor ",'OK');
	    	return false;
	    }
		if (rec_cabecera_to_rec_detalle.rec_detalle_to_valores.usa_cta_bco && rec_cabecera_to_rec_detalle.cuentas_cyb==null)
	    {
	    	globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar Cuenta ",'OK');
	    	return false;
	    }
		if (rec_cabecera_to_rec_detalle.rec_detalle_to_valores.es_cheque==0 &&
			rec_cabecera_to_rec_detalle.rec_detalle_to_valores.usa_cta_bco==1)
		{ // es transferencia
			if (rec_cabecera_to_rec_detalle.cheque_nro==null)
	    	{
		    	globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar Nro. Transferencia",'OK');
		    	return false;
	    	}
			if (rec_cabecera_to_rec_detalle.fecha_pago==null)
	   		{
	   			globals.DIALOGS.showWarningDialog('Aviso',"Debe ingresar Fecha de la Transferencia nro. " + rec_cabecera_to_rec_detalle.cheque_nro,'OK');
	    		return false;
	    	}
		}
	 } // fin for de detalles

	var found = rec_cabecera_to_rec_detalle.getSize(); 
	for (i = 1 ; i <= found; i++)
 	{
		rec_cabecera_to_rec_detalle.setSelectedIndex(i);
		if (rec_cabecera_to_rec_detalle.rec_detalle_to_valores.es_cheque==1)
		{
			var registro 	= new Array(); 
			registro[1]		= rec_cabecera_to_rec_detalle.cheque_nro;
			registro[2]		= rec_cabecera_to_rec_detalle.banco_id;
			registro[3]		= rec_cabecera_to_rec_detalle.valor_id;
			
	 		for (var j = i+1 ; j <= rec_cabecera_to_rec_detalle.getSize(); j++)
	 		{
	 			rec_cabecera_to_rec_detalle.setSelectedIndex(j);
				if (rec_cabecera_to_rec_detalle.rec_detalle_to_valores.es_cheque == 1)
				{
					if (rec_cabecera_to_rec_detalle.cheque_nro == registro[1]  &&
						rec_cabecera_to_rec_detalle.banco_id == registro[2]  &&
						rec_cabecera_to_rec_detalle.valor_id == registro[3])
					{
						globals.DIALOGS.showWarningDialog('Aviso','Cheque Nro. ' + rec_cabecera_to_rec_detalle.cheque_nro  + ' Ya fue cargado en este recibo para el mismo banco','OK');
	    				return false;
	    			}
				}
			}
	 	}
 	}
	return true;  
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"09360198-9C5E-428C-BEF5-B4EAFE6359CA"}
 */
function agregar_renglon_retencion(event) {
	if (cliente_id!=null)
		rec_cabecera_to_rec_detalle_retencion.newRecord(false);
	else
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe elegir cliente primero','OK');
	}
}

/**
 *
 * @properties={typeid:24,uuid:"166D4D31-EBB3-4D7F-AEF4-0021A4FF10A9"}
 */
function eliminar_renglon_retencion() {
	var found = rec_cabecera_to_rec_detalle_retencion.getSize()
	if (found==0)
	{
	    globals.gtotal_retenciones=0
	}
	else
	{
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea dar de baja? ',  'Si', 'No')
	if (resp == 'Si')
	{
		rec_cabecera_to_rec_detalle_retencion.deleteRecord()
		totales_retenciones()
	}
	}
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"2A066B96-6D4D-4CF3-BEEA-E5E85FD01DE8"}
 */
function onDataChangeNroManual(oldValue, newValue, event) {
	elements.fld_nro_comprobante.enabled 	= fNroManual
	elements.fld_sucursal.enabled 			= fNroManual
	return true
}

